#include<iostream>
#include<stdio.h>
#include<unistd.h>
#include<pthread.h>


using namespace std;
void*  pthread_start(void* arg){
    int count = 20;
    while(count--){
        printf("I am work thread\n");
        sleep(1);
    }
    //该函数具有谁调用谁退出的特性，因此工作线程调用后，工作线程退出
    //pthread_exit(NULL);
    //pthread_cancel(pthread_self());     //终止自己
    //while(1){
    //    printf("work thread don't exit now\n");
    //    sleep(1);
    //}
}
int main(){
    //创建线程
    pthread_t tid;
    int ret = pthread_create(&tid, NULL, pthread_start, NULL);
    if(ret < 0){
        perror("pthread_create");
    }
    //作用：让主线程在这阻塞等待用户输入，确保在终止工作线程之前它能够得到CPU资源
    getchar();
    pthread_cancel(pthread_self());
    //主线程不退出，观察状态信息
    while(1){
        cout << "I am main thread" << endl;
        sleep(1);
    }
    return 0;
}
